#include "Sys_RCC.h"
#include "sys.h"
#include "usart.h"	 
#include "delay.h"
#include "key.h"
#include "string.h"
/*****************************************************
说明：
通过系统命令设置控件的值。

调试步骤：
1、先用串口助手给屏幕手动发命令，看串口屏能否响应
2、将单片机程序的串口输出，打印到串口助手上，检查串口命令是否发送正确
3、上面两个步骤都没有问题，既可将单片机数据 接 到串口屏上调试，看是否有响应
4、若串口屏没有响应，检查串口线是否连接正确，如单片机的tx接串口屏的rx等
*****************************************************/



char page_str[50];  //发送字符串缓存

float V = 3.0;
int I = 0;
int SOC = 0;


int main(void)	
{
	Sys_SetRcc();                                 //设置系统使用内部时钟
	delay_init(64);	    	                      //延时函数初始化	 
	usart1_init();                                //初始化串口 波特率115200
	
	while(1)
	{
		//设置电压值
		sprintf(page_str,"wset numVf.valf %.2f\r\n",V);
		USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
		delay_ms(1); //命令之间需要加上小延时分开
		
		//设置电流值
		sprintf(page_str,"wset numA.val %d\r\n",I);
		USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
		delay_ms(1); //命令之间需要加上小延时分开

		//设置进度条SOC
		sprintf(page_str,"wset psoc.val %d\r\n",SOC);
		USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
		delay_ms(1); //命令之间需要加上小延时分开
		
		//设置SOC百分比
		sprintf(page_str,"wset nsoc.val %d\r\n",SOC);
		USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
		delay_ms(1); //命令之间需要加上小延时分开	


		
		if(SOC > 80)
		{
			sprintf(page_str,"wset psoc.fgImg 2\r\n");//绿色图片
			USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
			delay_ms(1); //命令之间需要加上小延时分开

			sprintf(page_str,"wset text.txt \"电量充足\"\r\n");
			USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));
			delay_ms(1); //命令之间需要加上小延时分开
		}
		else if(SOC > 20)
		{
			sprintf(page_str,"wset psoc.fgImg 4\r\n");//黄色图片
			USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
			delay_ms(1); //命令之间需要加上小延时分开

			sprintf(page_str,"wset text.txt \"电量正常\"\r\n");
			USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));
			delay_ms(1); //命令之间需要加上小延时分开			
		}
		else
		{
			sprintf(page_str,"wset psoc.fgImg 3\r\n");//红色图片
			USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));	
			delay_ms(1); //命令之间需要加上小延时分开	

			sprintf(page_str,"wset text.txt \"电量过低\"\r\n");
			USART_OUT(USART1, (uint8_t*)page_str,strlen(page_str));
			delay_ms(1); //命令之间需要加上小延时分开			
		}
		
		
		
		//模拟数据变化
		V += 0.08;
		if(V > 5) V = 3.0;
		if(++I > 100)I = 0;
		if(++SOC > 100)SOC = 0;

		delay_ms(200);
			
	}
	
}














